﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace YasharEl.Infrastructure.Core.ServiceModel
{
    [DataContract(Namespace = "http://yasharel.infrastructure.core.servicemodel.prototype/2013/prototypemessages")]
    public abstract class PropertyValueDTO<TValue> : IPropertyValueDTO<TValue>
    {
        public abstract TValue Value
        {
            get;
            set;
        }

        object IPropertyValueDTO.Value
        {
            get
            {
                return Value;
            }
            set
            {
                this.Value = (TValue)value;
            }
        }
    }
}
